#ifndef LISTAABM_H_
#define LISTAABM_H_

#include "../Entidades/Distrito.h"
#include "../Entidades/Votante.h"
#include "../Manejadores/ManejadorDistrito.h"
#include "../Manejadores/ManejadorVotante.h"
#include "../Manejadores/ManejadorEleccion.h"
#include "../Manejadores/ManejadorCargo.h"
#include "../Manejadores/ManejadorLista.h"
#include "../Archivos/Log.h"
#include "../Interfaces/IAbm.h"
#include "../Accesorios/Parser.h"
#include "../Archivos/ArchivoAltasMasivas.h"
#include <stdio.h>
#include <stdlib.h>
#include <stdio.h>
#include <string>

using namespace Archivos;
using namespace Manejadores;
using namespace Entidades;
using namespace Accesorios;

using namespace std;

namespace ABM{

class ListaABM :public IAbm {

private:
	ManejadorLista* manejadorLista;
	ManejadorEleccion* manejadorEleccion;
	bool altaInterna(int fecha, string cargo, string nombre);

public:
	ListaABM();
	int menu(); // definida por el padre
	void ABM(int opcion); // definida por el padre
	//hay q implementarlas para que deje de ser abstracta
	bool alta();
	bool baja();
	bool modificacion();
	void altaMasiva();
	bool listar();

	virtual ~ListaABM();
};
}

#endif /* LISTAABM_H_ */
